10 CALL CLEAR :: CALL MAGNIFY(3) :: RANDOMIZE :: CALL SCREEN(2) :: GOSUB 31200 :: DIM H(4)
20 GOSUB 31100
30 FOR L=1 TO 4 :: H(L)=0 :: NEXT L :: SPD=4 :: PAGE=1 :: SC=0 :: CIRO=3 :: SCC=0
35 X=168 :: Y=120 :: GOSUB 31300
40 CALL SPRITE(#1,96,7,X,Y) :: GOSUB 31400
50 GOTO 1000
110 IF X=168 THEN 1010 ELSE X=X+16 :: CALL LOCATE(#1,X,Y) :: CALL FS
115 CALL COINC(ALL ,HIT) :: IF HIT=-1 THEN 5000 ELSE 1010
120 IF X=8 THEN 122
121 X=X-16 :: CALL LOCATE(#1,X,Y) :: CALL FS :: CALL COINC(ALL ,HIT) :: IF HIT=-1 THEN 5000 ELSE 1010
122 IF Y=192 THEN 210 ELSE IF Y=144 THEN 220 ELSE IF Y=96 THEN 230 ELSE IF Y=48 THEN 240
123 GOTO 1010
130 Y=Y-8 :: IF Y<8 THEN Y=8
131 CALL LOCATE(#1,X,Y) :: CALL FS :: CALL COINC(ALL ,HIT) :: IF HIT=-1 THEN 5000 ELSE 1010
132 GOTO 1010
140 Y=Y+8 :: IF Y>248 THEN Y=248
141 CALL LOCATE(#1,X,Y) :: CALL FS :: CALL COINC(ALL ,HIT) :: IF HIT=1 THEN 5000 ELSE 1010
142 GOTO 1010
210 IF H(4)=1 THEN 1010
211 H(4)=1 :: CALL DELSPRITE(#1) :: CALL HCHAR(1,25,40,2)
212 CALL HS :: SC=SC+50 :: SCC=SCC+50 :: GOSUB 245 :: GOSUB 250 :: GOSUB 255 :: GOSUB 260 :: GOTO 1010
220 IF H(3)=1 THEN 1010
221 H(3)=1 :: CALL DELSPRITE(#1) :: CALL HCHAR(1,19,40,2) :: GOTO 212
230 IF H(2)=1 THEN 1010
231 H(2)=1 :: CALL DELSPRITE(#1) :: CALL HCHAR(1,13,40,2) :: GOTO 212
240 IF H(1)=1 THEN 1010
241 H(1)=1 :: CALL DELSPRITE(#1) :: CALL HCHAR(1,7,40,2) :: GOTO 212
245 IF SCC>999 THEN 246 ELSE 249
246 SCC=0 :: CIRO=CIRO+1 :: DISPLAY AT(24,22):"CIRO";CIRO :: FOR V=0 TO 30 STEP 2 :: CALL SOUND(-100,1294,V) :: NEXT V
249 RETURN
250 DISPLAY AT(24,12):SC; :: RETURN
255 CH=H(1)+H(2)+H(3)+H(4) :: IF CH=4 THEN 256 ELSE 259
256 CALL M2 :: SPD=SPD+2 :: PAGE=PAGE+1 :: CALL DELSPRITE(ALL) :: CALL CLEAR :: FOR L=1 TO 4 :: H(L)=0 :: NEXT L :: GOTO 35
259 RETURN
260 FOR Q=8 TO 120 STEP 8 :: CALL LOCATE(#1,168,Q) :: CALL FS :: NEXT Q :: X=168 :: Y=120 :: RETURN
1000 CALL M1
1010 CALL JOYST(1,JY,JX) :: CALL COINC(ALL ,HIT) :: IF HIT=-1 THEN 5000
1015 IF JX=-4 THEN 110 ELSE IF JX=4 THEN 120 ELSE IF JY=-4 THEN 130 ELSE IF JY=4 THEN 140
1030 GOTO 1010
5000 CALL CHAR(96,"00000000010307070F0F0F070300000000000000C0E0F0F0F0E0E0C000000000") :: CALL DELSPRITE(#1)
5001 CALL SPRITE(#28,96,9,X,Y)
5005 CALL SOUND(200,110,30,110,30,1000,30,-8,4) :: FOR DE=1 TO 500 :: NEXT DE :: CIRO=CIRO-1
5010 DISPLAY AT(24,22):"CIRO";CIRO :: IF CIRO=0 THEN 5100
5015 CALL DELSPRITE(#28) :: CALL CHAR(96,"050307050706030F17171707020206004080C040C0C080E0D0D0D0C08080C000")
5020 X=168 :: Y=168 :: CALL SPRITE(#1,96,7,168,1) :: GOSUB 260 :: GOTO 1010
5100 CALL M3 :: FOR DE=1 TO 500 :: NEXT DE :: CALL CLEAR :: CALL DELSPRITE(ALL)
5105 CALL CHAR(96,"050307050706030F17171707020206004080C040C0C080E0D0D0D0C08080C000")
5110 GOTO 20
31100 SC=0 :: CALL CLEAR :: CALL DELSPRITE(ALL) :: CALL COFF :: CALL HCHAR(1,1,58,768)
31101 PRINT "     WWW.TI99IUC.IT     ":"                        ":"                       ":"                       "
31102 PRINT "    :::: ::::: :::  ::::":"    :      :   :  : :  :":"   :      :   :  : :  :"
31104 PRINT "   :      :   :::  :  :":"  :      :   :  : :  :":"  :      :   :  : :  :"
31106 PRINT " :      :   :  : :  :":" :::: ::::: :  : ::::" :: FOR L=1 TO 8 :: PRINT :: NEXT L
31110 DISPLAY AT(23,1):":::INSTRUCTIONS::Y:OR:N:::::" :: CALL C1
31111 CALL KEY(0,K,S)
31113 IF S=0 THEN 31111
31114 IF K=89 THEN 31115 ELSE IF K=78 THEN 31199 ELSE 31111
31115 CALL COFF :: CALL CLEAR :: CALL HCHAR(1,1,58,768)
31120 DISPLAY AT(1,1):":::I:N:S:T:R:U:C:T:I:O:N:S::"
31125 DISPLAY AT(3,1):"::HELP:CIRO:GET:ACROSS:THE::":"BUSY:ROAD:AND:SWIM:THE:RIVER":":::TO:GET:HIM:TO:HIS:HOME:::"
31140 DISPLAY AT(7,1):":::GET:CIRO:IN:ALL:OF:HIS:::":":HOMES:TO:COMPLETE:THE:PAGE:"
31150 DISPLAY AT(10,1):":::EACH:HOME:CAN:ONLY:BE::::":":::::::OCCUPIED:ONCE::::::::"
31160 DISPLAY AT(13,1):":USE:JOYSTICK:1:TO:CONTROL::":"::CIRO:IN:FOUR:DIRECTIONS:::"
31161 DISPLAY AT(16,1):"EXTRA:CIRO:EVERY:1000:POINTS"
31170 DISPLAY AT(22,1):"::::PRESS:FIRE:TO:BEGIN:::::" :: CALL C1
31175 CALL KEY(1,K,ST)
31185 IF K=18 THEN 31199 ELSE 31175
31199 CALL COFF :: RETURN
31200 FOR L=1 TO 17 :: READ X,X$ :: CALL CHAR(X,X$) :: NEXT L
31205 DATA 33,3C00000000000000000000000000003CFFFFFFFFFFFFFFFF000000040A1F7FFF,37,030F1C70E080DBFF
31210 DATA 40,0000000000000000FFFFFFFFFFFFFFFF,58,0000000000000000
31215 DATA 96,050307050706030F17171707020206004080C040C0C080E0D0D0D0C08080C000,100,000000000102047F7FFFFF283800000000000000F82422FFFFFFFF0A0E000000
31220 DATA 104,0000000F040404FFFF7F7F2838000000000000FF222222FFFFFFFF0A0E000000,108,7F212121217FFFFF7877EFED0F070000E6E6E6E6E6E6FEFEFE7EBEBE80000000
31225 DATA 112,000000001F2444FFFFFFFF507000000000000000804020FEFEFFFF141C000000,116,000000FF444444FFFFFFFF5070000000000000F0202020FFFFFEFE141C000000
31230 DATA 120,6767676767677F7F7F7E7D7D01000000FE84848484FEFFFF1EEEF7B7F0E00000,124,FFFFFFFFFFFFFFFFE3DDBEB63E1C0000FFFFFFFFFFFFFFFFC7BB7D6D7C380000
31235 DATA 128,00000000000003050F7FFFFF0000000000000000020F3EFAC84055FF00000000,132,0000000040F07C5F1302AAFF00000000000000000000C0A0F0FEFFFF00000000
31240 DATA 136,00000000006C1D6D6F3F7F0F0000000000000000000080C0FFFEFCE000000000,140,2041211153572E161F2345492804000082C1C2C4E5F5BAB4FCE2D1490A100000
31245 DATA 60,0000011804070F172224040000000000000000809EBFFFFF3E48888400000000
31250 RESTORE
31255 RETURN
31300 CALL CLEAR :: CALL COFF :: CALL HCHAR(1,1,40,32) :: CALL HCHAR(2,1,41,256) :: CALL HCHAR(10,1,40,64)
31305 CALL HCHAR(12,1,32,32) :: CALL HCHAR(13,1,34,32) :: CALL HCHAR(14,1,33,32) :: CALL HCHAR(15,1,34,32)
31310 CALL HCHAR(16,1,33,32) :: CALL HCHAR(17,1,34,32) :: CALL HCHAR(18,1,33,32) :: CALL HCHAR(19,1,34,32)
31315 CALL HCHAR(20,1,33,32) :: CALL HCHAR(21,1,32,32) :: CALL HCHAR(22,1,40,64) :: CALL HCHAR(24,1,32,32)
31320 DISPLAY AT(24,1):"PAGE";PAGE; :: DISPLAY AT(24,10):"SC";SC; :: DISPLAY AT(24,22):"CIRO";CIRO;
31325 CALL HCHAR(1,7,32,2) :: CALL HCHAR(1,13,32,2) :: CALL HCHAR(1,19,32,2) :: CALL HCHAR(1,25,32,2)
31399 CALL C2 :: RETURN
31400 CALL SPRITE(#2,140,1,8,1,#3,136,1,24,1,#4,136,1,24,64)
31405 CALL SPRITE(#5,132,1,40,128,#6,132,1,40,32,#7,128,1,56,64)
31410 CALL SPRITE(#8,128,1,56,128,#9,60,1,72,64,#10,112,1,88,32)
31415 CALL SPRITE(#11,116,1,88,96,#12,108,1,104,232,#13,124,1,104,248)
31420 CALL SPRITE(#14,120,1,120,32,#15,124,1,120,16,#16,100,1,136,64)
31425 CALL SPRITE(#17,104,1,136,160,#18,116,1,152,100,#19,112,1,152,160)
31430 IF PAGE>1 THEN 31435 ELSE 31461
31435 CALL SPRITE(#20,104,1,104,100) :: IF PAGE>2 THEN 31440 ELSE 31461
31440 CALL SPRITE(#21,112,1,120,96) :: IF PAGE>3 THEN 31445 ELSE 31461
31445 CALL SPRITE(#22,136,1,24,128) :: IF PAGE>4 THEN 31450 ELSE 31461
31450 CALL SPRITE(#23,140,1,8,64) :: IF PAGE>5 THEN 31455 ELSE 31461
31455 CALL SPRITE(#24,140,1,8,128) :: IF PAGE>6 THEN 31460 ELSE 31461
31460 CALL SPRITE(#25,128,1,56,192,#26,132,1,40,164)
31461 CALL MOTION(#2,0,-SPD,#3,0,SPD+2,#4,0,SPD+2,#5,0,-SPD) :: CALL MOTION(#6,0,-SPD,#7,0,SPD,#8,0,SPD,#9,0,-SPD)
31462 CALL MOTION(#10,0,SPD+1,#11,0,SPD+1,#12,0,-SPD,#13,0,-SPD) :: CALL MOTION(#14,0,SPD,#15,0,SPD,#16,0,-(SPD+1),#17,0,-(SPD+1))
31463 CALL MOTION(#18,0,SPD+2,#19,0,SPD+2,#20,0,-SPD,#21,0,SPD) :: CALL MOTION(#21,0,SPD,#22,0,SPD+2,#23,0,-SPD)
31464 CALL MOTION(#24,0,-SPD,#25,0,SPD,#26,0,-SPD)
31465 CALL COLOR(#2,2,#3,16,#4,16,#5,13)
31470 CALL COLOR(#6,13,#7,13,#8,13,#9,2)
31475 CALL COLOR(#10,2,#11,3,#12,5,#13,5)
31480 CALL COLOR(#14,5,#15,5,#16,4,#17,11)
31485 CALL COLOR(#18,10,#19,7,#20,3,#21,10)
31490 CALL COLOR(#22,16,#23,2,#24,2,#25,13)
31495 CALL COLOR(#26,13)
31499 RETURN
32110 SUB C1
32111 CALL COLOR(1,16,15,2,16,2,3,16,2,4,16,2)
32112 CALL COLOR(5,16,2,6,16,2,7,16,2,8,16,2)
32114 SUBEND
32115 SUB C2
32116 CALL COLOR(1,2,15,2,5,13,3,2,16,4,2,16)
32117 CALL COLOR(5,2,16,6,2,16,7,2,16,8,2,16)
32118 SUBEND
32120 SUB COFF :: FOR L=1 TO 8 :: CALL COLOR(L,2,2) :: NEXT L :: SUBEND
32130 SUB M1
32135 FOR L=1 TO 2 :: CALL SOUND(250,370,4,740,4) :: CALL SOUND(175,294,4,588,4) :: CALL SOUND(1,110,30)
32140 CALL SOUND(175,294,4,588,4) :: CALL SOUND(1,110,30) :: CALL SOUND(175,294,4,588,4) :: CALL SOUND(1,110,30) :: NEXT L
32145 FOR L=1 TO 2 :: CALL SOUND(175,394,4,788,4) :: CALL SOUND(1,110,30) :: CALL SOUND(175,394,4,788,4) :: CALL SOUND(1,110,30)
32150 CALL SOUND(175,370,4,740,4) :: CALL SOUND(1,110,30) :: CALL SOUND(175,370,4,740,4) :: CALL SOUND(1,110,30)
32155 CALL SOUND(500,330,4,660,4) :: NEXT L
32160 CALL SOUND(500,494,4,988,4) :: CALL SOUND(175,440,4,880,4) :: CALL SOUND(1,110,30) :: CALL SOUND(175,394,4,788,4)
32165 CALL SOUND(1,110,30) :: CALL SOUND(175,370,4,740,4) :: CALL SOUND(1,110,30) :: CALL SOUND(175,330,4,660,4)
32170 CALL SOUND(1,110,30) :: CALL SOUND(1000,294,4,588,4) :: SUBEND
32180 SUB FS :: CALL SOUND(-50,110,30,110,30,2000,30,-4,4)
32181 SUBEND
32185 SUB HS :: CALL SOUND(64,110,30,110,30,4000,30,-4,4)
32188 CALL SOUND(64,110,30,110,30,4000,30,-8,2) :: SUBEND
32190 SUB M2 :: CALL SOUND(175,294,4,588,4) :: CALL SOUND(175,330,4,660,4) :: CALL SOUND(175,370,4,740,4)
32191 CALL SOUND(175,394,4,788,4) :: CALL SOUND(350,440,4,880,4) :: CALL SOUND(350,370,4,740,4)
32192 CALL SOUND(175,294,4,588,4) :: CALL SOUND(175,330,4,660,4) :: CALL SOUND(175,370,4,740,4)
32193 CALL SOUND(175,330,4,660,4) :: CALL SOUND(175,294,4,588,4) :: CALL SOUND(175,220,4,440,4)
32194 CALL SOUND(175,294,4,588,4) :: CALL SOUND(175,220,4,440,4)
32195 CALL SOUND(175,294,4,588,4) :: CALL SOUND(175,330,4,660,4) :: CALL SOUND(175,370,4,740,4)
32196 CALL SOUND(175,394,4,788,4) :: CALL SOUND(350,440,4,880,4) :: CALL SOUND(350,370,4,740,4)
32197 CALL SOUND(175,440,4,880,4) :: CALL SOUND(175,394,4,788,4) :: CALL SOUND(175,370,4,740,4)
32198 CALL SOUND(175,330,4,660,4) :: CALL SOUND(1000,294,4,588,4) :: SUBEND
32200 SUB M3 :: CALL SOUND(500,440,4,880,4) :: CALL SOUND(200,370,4,740,4) :: CALL SOUND(200,594,4,1188,4) :: CALL SOUND(200,110,30)
32201 CALL SOUND(200,594,4,1188,4) :: CALL SOUND(50,110,30) :: CALL SOUND(500,733,4,1466,4)
32202 CALL SOUND(100,660,4,1320,4) :: CALL SOUND(100,594,4,1188,4) :: CALL SOUND(100,494,4,988,4) :: CALL SOUND(200,440,4,880,4)
32203 CALL SOUND(200,110,30) :: CALL SOUND(200,330,4,660,4) :: CALL SOUND(200,440,4,880,4)
32204 CALL SOUND(200,370,4,740,4) :: CALL SOUND(200,440,4,880,4) :: CALL SOUND(200,370,4,740,4) :: CALL SOUND(200,440,4,888,4)
32205 CALL SOUND(500,294,4,588,4) :: SUBEND
